热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

新和|更多_ROS2HumbleHawksbill丰富和成熟生态扩展

篇首语:本文由编程笔记#小编为大家整理,主要介绍了ROS2HumbleHawksbill丰富和成熟生态扩展相关的知识,希望对你有一定的参考价值。ROS1从kine

篇首语:本文由编程笔记#小编为大家整理,主要介绍了ROS 2 Humble Hawksbill 丰富和成熟生态扩展相关的知识,希望对你有一定的参考价值。


ROS1从kinetic之后,生态非常成熟,但是由于ROS1内核设计比较早,不能高效稳定地适应分布并行和实时等应用,存在缺陷,从melodic和noetic之后,一直是ROS1和ROS2并存地状态。

2022年5月,ROS 2 Humble Hawksbill 已经具备了丰富和成熟生态,也结束了并存状态,现在官方主力只更新和完善ROS2了。ROS1只处于维护状态。



原文参考:

discourse.ros.org/t/ros-2-humble-hawksbill-released/25729


机器翻译如下:



仿真:

三大主流软件均支持,Gazebo/V-Rep/Webots。

库和工具
Gazebo 不仅仅是一个模拟器:它是 16 个 C++ 库 3 的集合,可以在机器人应用程序上独立于模拟器使用。 可以在 ROS 包或纯 C++ 项目中使用它们。 如果需要渲染或物理引擎抽象; 用于创建现代机器人界面的 GUI 框架 3; 数学 1、图形或 AV 实用程序,这些库之一可能会派上用场!

可以在 package.xml 中使用


  1. ignition-fortress
  2. ignition-cmake2
  3. ignition-common4
  4. ignition-fuel-tools7
  5. ignition-gazebo6
  6. ignition-gui6
  7. ignition-launch5
  8. ignition-math6
  9. ignition-math6-eigen3
  10. ignition-msgs8
  11. ignition-physics5
  12. ignition-plugin
  13. ignition-rendering6
  14. ignition-sensors6
  15. ignition-tools
  16. ignition-transport11
  17. ignition-utils1
  18. sdformat12



Foxglove



FogROS2

FogROS 2,加州大学伯克利分校的开源云机器人试点平台。使用诸如 Amazon Web Services (AWS) 等商业集群的云计算现在已经足够快,可以实现安全的计算密集型机器人功能,例如通过视频构建 SLAM 地图、抓取规划和高维运动规划,这些功能可以在云中使用高- 近乎实时的高性能硬件和 GPU。 FogROS 2 提供 ROS 2 功能来简化机器人代码的部署。开发人员不需要更改他们的代码——只需要指定希望代码运行的计算机的 AWS 配置。 FogROS 2 协调启动硬件实例、安装软件和依赖项、保护机器人与云通信以及启动云进程的细节。

在示例应用程序中,使用 FogROS 2 将计算密集型 ROS 2 节点部署到云中,用于 SLAM、Grasp Planning 和 Motion Planning。对于 Visual SLAM,在多核云计算机上运行 ORB-SLAM 2 节点,得到了 2 倍的加速。对于 Grasp Planning,在云中的 GPU 实例上运行 Dex-Net 节点并获得了 12 倍的加速。对于运动规划,在 96 核云计算机上运行运动规划模板,并获得了 28 倍的加速。

 



硬件加速

为什么 Yocto/PetaLinux 非常适合机器人硬件加速?
硬件加速涉及创建自定义计算架构以提高计算性能。 简而言之,通过设计专门的加速内核,可以为机器人构建定制大脑,以加快它们的响应时间。 当使用自适应计算和 FPGA 时,这变得特别可行,根据之前的基准,使用 ROS 在机器人技术中提供最佳结果。

创建此类定制计算架构涉及硬件和软件定制,因此:Yocto。 虽然很复杂,但 Yocto 与硬件加速相结合有助于提供高性能的生产级机器人系统。

 



Docker

ROS 最新标签现在指向 Humble ros_base 映像。

只需运行以下命令即可在 Humble 容器中下载并启动会话:

docker run -it ros:humble
ROS Humble 镜像可用于以下平台/架构:

Ubuntu:
   amd64
   arm64v8 (aarch64)
桌面映像(仅限 amd64)在“osrf/ros”docker hub 配置文件 1 上可用

:warning: Humble 不存在 ros1-bridge 映像,因为这是第一个不支持 ROS 1 的 ROS 2 发行版。



CPU+GPU

随着机器人应用程序包含 AI、CV 和其他计算密集型工作负载,在 ROS 中启用硬件加速已变得势在必行。通过硬件加速,这些应用程序可以以更高的吞吐量和更好的性能/功耗执行更多功能。实现这些好处通常特定于硬件实现,因此需要从 ROS 中抽象出来。

在 Foxy 中使用硬件加速的节点示例图(上图)与在 Humble 中使用类型自适应(下图)相比。类型自适应减少了节点管道中从 CPU 到 GPU 的副本,同时增加了 CPU 和 GPU 之间的并发性

类型适应

ROS 主题可以使用类型适应(REP-2007 9)适应更适合硬件加速的格式。使用适配类型的节点可以发布和/或接收适配类型。使用适配类型的节点需要提供从标准类型转换为适配类型的函数,反之亦然。这使节点图能够使用一种适应类型,该类型可以提高 CPU 和硬件加速的并发性,从计算任务中卸载 CPU,并消除 CPU 和硬件加速器之间的内存复制。

类型协商

通过使用自适应类型的 ROS 节点图,可以进一步受益于优化图中节点之间使用的类型。支持类型协商(REP-2009 5)的节点可以共享它们作为发布者和订阅者支持的类型列表,权重表明他们的偏好。 ROS 将审查参与类型协商的发布者和订阅者,并针对偏好进行优化,同时保持与不支持类型协商的节点的兼容性。首选项是反映性能或类型成本的一种方式,应该由节点的开发人员调整,但可以由应用程序开发人员覆盖。

Jetson AGX Xavier 的简介,Foxy 为 89 毫秒,Humble 为 32 毫秒,对同一节点图进行类型调整

随着类型适应和类型协商性能的提高,ROS 中的进程内主题传递成为瓶颈。 Nsight Systems 5 用于分析消息传递以识别需要改进的领域。在 rcl.cpp 中进行了更改,以减少共享内存指针副本和检查以打印调试消息。

ROS2 节点图在 Foxy 中的 1080p CUDA 缓冲区上按顺序运行,而在 Humble 中使用 Type Adaptation 的相同节点图;在 Jetpack 5.0 开发者预览版、Ubuntu 20.04 和 Jetson AGX Orin 和 Xavier 上以 Hz 为单位测量结果。节点图旨在测试通过最小化计算工作量来提高框架性能,将重点放在 ROS 客户端库中的开销上
在像素处理方面,Jetson AGX Orin 在此测试中从 Foxy 中的 0.55 千兆像素/秒到 Humble 中的 4 千兆像素/秒。 

使用类型适应和类型协商的节点硬件加速图提高了性能、并发性和性能/功率。还有其他实现硬件加速的替代方法,它们分叉 ROS、绕过 ROS 主题或引入与现有节点的不兼容性。类型适配和类型协商是 ROS with Humble 原生的,与现有节点兼容,并对包括 GPU、DSP、NN 加速器和其他硬件模块在内的所有类型的硬件加速器开放。

 



事实上,Fast DDS 被选为 ROS 2 Humble 的默认 DDS 中间件,允许 ROS 2 用户使用可靠且性能优化的实现来开发机器人应用程序。

以许多功能而闻名,例如


  1. 实时行为
  2. DDS 安全
  3. 发现服务器
  4. 共享内存传输
  5. 同步和异步发布模式

还有很多
eProsima 能够在 Humble 版本的 Fast DDS 中包含更多特性……

内容过滤主题功能 1 (CFT) 为主题提供过滤功能,使用户在订阅主题时能够在特定条件下对他们感兴趣的数据子集进行分段。
在运行时添加远程服务器和修改服务器定位器:现在可以以编程方式添加和修改参与者的远程服务器列表,当服务器或客户端正在运行时,正在运行的服务器或客户端应连接到这些远程服务器。
静态发现新格式:新的交换格式减少了传输静态所需的网络带宽。
快速 DDS CLI 的 XML 支持。
完整的事件支持:发布者和订阅者的不兼容 QoS 通知。

 



rclc - 用于微控制器的 ROS 2 C-API

rclc 包对 ROS 客户端支持库 (rcl) 进行了补充,为 C 编程语言提供了完整的 ROS 2 客户端库



micro-ROS


  1. 新的 RCLC 特性
  2. 对各种板的新支持:RENESAS RA 系列、TI Tiva™ C 系列、
  3. 对众多平台的新支持:Platforms IO、St STMCube、Microsoft Azure RTOS、Espressif ESP-IDF
  4. 新嵌入式RTPS实验RMW 1
  5. 微型 XRCE-DDS v2.1.1 


Moveit2

 

亮点


  • 混合规划 7:使用(较慢)全局运动规划器和(较快)局部运动规划器,使机器人能够在线和在动态环境中解决不同的任务
  • TOTG 1:现在默认的参数化方法
  • Ruckig 1:改进的时间参数化和 jerk 平滑,允许非零初始/最终条件
  • MoveIt Setup Assistant 3:使用 MoveIt 的入口点,现在适用于 ROS 2
  • MoveIt Config Utilities 2:简化加载参数
  • 许多用于手臂的新 ROS 2 驱动程序(Universal Robotics 3 及更多即将发布)


Nav2

亮点


  1. 在运行时、组织、启发式以及添加新的 State Lattice 规划器等方面对 Smac 规划器进行了大规模改进。
  2. 为 Nav2 应用程序开发人员添加 Python3 API,可以从 pythonic API 访问所有 Nav2 系统。
  3. 整个堆栈的运行时性能改进减少了节点数量,显式控制执行程序,并默认启用组合,因此所有 Nav2 都在一个进程中,将 CPU 开销减少 15% 并将内存减少 70%。 经过测试,可以在树莓派上轻松运行,并为自定义机器人代码留出足够的空间。
  4. 包含新算法:State Lattice、Rotation Shim、Simple Smoother、Constrained Smoother、(即将添加)Velocity Smoother
  5. 所有适当参数的动态重新配置
  6. 在 Nav2 核心架构中添加新的 Smoother Server,用于全局路径平滑
  7. 为 Lifecycle Manager 和 Nav2 启动添加了重生支持
  8. 几个新的文档页面、教程等。



 

 



推荐阅读
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
先人掌
这个家伙很懒,什么也没留下!